/*
 * Created by VS2005Express
 * user: Ramayac
 */
using System;
using System.Data;
using System.Collections.Generic;
using DataLayer;
using MySql.Data.MySqlClient;

namespace Inventador
{
	public class MarcaProducto
	{
		#region Campos
		
		private int _id;
		private string _nombre;

		#endregion
		
		#region Propiedades
		
		public int Id
		{
			get { return this._id; }
			set { this._id = value; }
		}
		
		public string Nombre
		{
			get { return this._nombre; }
			set { this._nombre = value; }
		}
		
		#endregion
		
		#region Metodos
		
		public MarcaProducto(int pId, string pNombre)
		{
			this.Id = pId;
			this.Nombre = pNombre;
		}
		
		public bool GetFromDb(BaseDatos bdatos)
		{
			bdatos = new BaseDatos();
			bdatos.Conectar();
			MySqlDataReader lector = bdatos.EjecutarConsulta("SELECT * FROM MarcaProducto AS mp WHERE id=" + this.Id.ToString());
			if(lector.HasRows)
			{
				lector.Read();
				this.Nombre = lector["nombre"].ToString();
				bdatos.Desconectar();
				return true;
			}
			bdatos.Desconectar();
			return false;
		}
		
		public bool GetFromDbByNom(BaseDatos bdatos)
		{
			bdatos = new BaseDatos();
			bdatos.Conectar();
            MySqlDataReader lector = bdatos.EjecutarConsulta("SELECT * FROM MarcaProducto AS mp WHERE nombre='" + this.Nombre + "'");
			if(lector.HasRows)
			{
				lector.Read();
				this.Id = int.Parse(lector["id"].ToString());
				bdatos.Desconectar();
				return true;
			}
			bdatos.Desconectar();
			return false;
		}
		
		public static List<MarcaProducto> GetList(BaseDatos bdatos, string condicion)
		{
			bdatos = new BaseDatos();
			List<MarcaProducto> lst = new List<MarcaProducto>();
			string consulta = "SELECT * FROM MarcaProducto AS mp";
			if(condicion != "") 
				consulta += " WHERE " + condicion;
			bdatos.Conectar();
			MySqlDataReader lector = bdatos.EjecutarConsulta(consulta);
			if(lector.HasRows)
                while (lector.Read())
                    lst.Add(new MarcaProducto(int.Parse(lector["id"].ToString()), lector["nombre"].ToString()));  
			bdatos.Desconectar();
            return lst;
		}
		
		public void Insert(BaseDatos bdatos)
		{
			bdatos = new BaseDatos();
			bdatos.Conectar();
            bdatos.EjecutarOperacion("INSERT INTO MarcaProducto VALUES(" + this.Id.ToString() + ", '" + this.Nombre + "' )");
			bdatos.Desconectar();
		}
		
		public void Update(BaseDatos bdatos)
		{
			bdatos = new BaseDatos();
			bdatos.Conectar();
            bdatos.EjecutarOperacion("UPDATE MarcaProducto SET nombre='" + this.Nombre + "' WHERE id=" + this.Id.ToString());
			bdatos.Desconectar();
		}
		
		public void Delete(BaseDatos bdatos)
		{
			bdatos = new BaseDatos();
			bdatos.Conectar();
            bdatos.EjecutarOperacion("DELETE FROM MarcaProducto WHERE id=" + this.Id.ToString());
			bdatos.Desconectar();
		}
		
		public static int GetMaxId(BaseDatos bdatos)
		{
			bdatos = new BaseDatos();
			bdatos.Conectar();
			int maxId = bdatos.EjecutarEscalar("SELECT MAX(id) FROM TipoProducto");
			bdatos.Desconectar();
			return maxId;
		}
		
		#endregion
	}
}
